package com.yq.ylmall.search.service;

import com.yq.ylmall.dto.search.QueryPageDto;
import com.yq.ylmall.search.document.ProductDocument;
import org.springframework.data.elasticsearch.core.SearchHit;

import java.util.List;

public interface IProductService {

    /**
     * 随机获取20条权重高的商品数据
     *
     * @return List
     */
    List<SearchHit<ProductDocument>> getIndexBySort();

    /**
     * 根据商品名称检索商品
     * 高亮查询、排序
     *
     * @param dto {@link QueryPageDto}
     * @return List
     */
    List<SearchHit<ProductDocument>> query(QueryPageDto dto);

    /**
     * 根据关键字查询商品名称
     *
     * @param q 查询关键字
     * @return List
     */
    List<String> queryKeyword(String q);

    /**
     * 上架商品，将商品存储到ES
     *
     * @param id 商品ID
     */
    void upperProduct(Long id);

    /**
     * 下架商品，将商品从ES下架
     *
     * @param id 商品ID
     */
    void lowerProduct(Long id);

}
